\hypertarget{class_main_app}{
\section{MainApp Class Reference}
\label{class_main_app}\index{MainApp@{MainApp}}
}


contains all the UI extended from MainWindow.ui and our GLWindow  




{\ttfamily \#include $<$MainApp.h$>$}



Collaboration diagram for MainApp:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=600pt]{class_main_app__coll__graph}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{class_main_app_a56f50de886e9ee9c4192b21eccdfe96b}{MainApp} (QWidget $\ast$\_\-parent=0)
\begin{DoxyCompactList}\small\item\em ctor \end{DoxyCompactList}\item 
\hyperlink{class_main_app_a1da72f01017840ab6165e33b76cc8482}{$\sim$MainApp} ()
\begin{DoxyCompactList}\small\item\em dtor \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Slots}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{class_main_app_a1f20f48cc0bfe332b4f069a3aeafa38b}{on\_\-cmd\_\-autoMove\_\-clicked} ()
\begin{DoxyCompactList}\small\item\em toggle automove for cloth simulation \end{DoxyCompactList}\item 
void \hyperlink{class_main_app_a44b46c785e6e68924e7030137cca590f}{on\_\-cmd\_\-singleStep\_\-clicked} ()
\begin{DoxyCompactList}\small\item\em single step through cloth simulation \end{DoxyCompactList}\item 
void \hyperlink{class_main_app_a667f9cd21b4ea50aa3103c17d142a4c8}{on\_\-cmd\_\-sim\_\-solidCurtain\_\-clicked} ()
\begin{DoxyCompactList}\small\item\em activate solid curtain scenario \end{DoxyCompactList}\item 
void \hyperlink{class_main_app_a35c05bcd9363325e9b8af51828dda15b}{on\_\-cmd\_\-sim\_\-banner\_\-clicked} ()
\begin{DoxyCompactList}\small\item\em activate banner scenario \end{DoxyCompactList}\item 
void \hyperlink{class_main_app_aad20e565bbf1e457a09f2a4f32c685ea}{on\_\-cmd\_\-sim\_\-flag\_\-clicked} ()
\begin{DoxyCompactList}\small\item\em activate flag scenario \end{DoxyCompactList}\item 
void \hyperlink{class_main_app_a96369311b5224b32640af9b55c3cca74}{on\_\-cmd\_\-sim\_\-shelter\_\-clicked} ()
\begin{DoxyCompactList}\small\item\em activate shelter scenario \end{DoxyCompactList}\item 
void \hyperlink{class_main_app_ae1c6d4fe96f0c44858921cb136bbb6ea}{on\_\-cmd\_\-sim\_\-curtain\_\-clicked} ()
\begin{DoxyCompactList}\small\item\em activate curtain scenario \end{DoxyCompactList}\item 
void \hyperlink{class_main_app_a5303b9182a7442f725c7f1e10ab49785}{on\_\-cmd\_\-sim\_\-tablecloth\_\-clicked} ()
\begin{DoxyCompactList}\small\item\em activate tablecloth scenario \end{DoxyCompactList}\item 
void \hyperlink{class_main_app_af4e2a5ecd0154ffb601178c801f07566}{on\_\-cmd\_\-2DFrontView\_\-clicked} ()
\begin{DoxyCompactList}\small\item\em change view to front view \end{DoxyCompactList}\item 
void \hyperlink{class_main_app_a9d8e98206b1f9edecc0ac582cf8dd35b}{on\_\-cmd\_\-2DTopView\_\-clicked} ()
\begin{DoxyCompactList}\small\item\em change view to top view \end{DoxyCompactList}\item 
void \hyperlink{class_main_app_a8c45b053060a7d1712b5197938dea563}{on\_\-cmd\_\-internal\_\-unpinColumn\_\-clicked} ()
\begin{DoxyCompactList}\small\item\em unpin a column \end{DoxyCompactList}\item 
void \hyperlink{class_main_app_ac0ab6908fa518b6067682285bf117551}{on\_\-cmd\_\-internal\_\-pinColumn\_\-clicked} ()
\begin{DoxyCompactList}\small\item\em pin a column \end{DoxyCompactList}\item 
void \hyperlink{class_main_app_a36ab7cd93ce97542e9661482aeb4095f}{on\_\-cmd\_\-internal\_\-unpinRow\_\-clicked} ()
\begin{DoxyCompactList}\small\item\em unpin a row \end{DoxyCompactList}\item 
void \hyperlink{class_main_app_a4f6b27c87310c40ca1c3e31da0fddc01}{on\_\-cmd\_\-internal\_\-pinRow\_\-clicked} ()
\begin{DoxyCompactList}\small\item\em pin a row \end{DoxyCompactList}\item 
void \hyperlink{class_main_app_afc6fb50af1bc3162f065bb2a1f6b8b1c}{on\_\-cmd\_\-internal\_\-unpinAll\_\-clicked} ()
\begin{DoxyCompactList}\small\item\em unpin all particles \end{DoxyCompactList}\item 
void \hyperlink{class_main_app_a5f327d09234e364dc3d3a84ae5f984a3}{on\_\-cmd\_\-internal\_\-pinAll\_\-clicked} ()
\begin{DoxyCompactList}\small\item\em pin all particles \end{DoxyCompactList}\item 
void \hyperlink{class_main_app_ae0b2400965586b2002bae3dcaaccf6a8}{on\_\-chk\_\-internal\_\-pinned\_\-clicked} (const bool \_\-checked)
\begin{DoxyCompactList}\small\item\em toggle pin of trace particle \end{DoxyCompactList}\item 
void \hyperlink{class_main_app_aec985e4ebcaede90c4e92a22576cdf38}{on\_\-chk\_\-internal\_\-traceNeighbours\_\-clicked} (const bool \_\-checked)
\begin{DoxyCompactList}\small\item\em toggle internal trace on neighbours springs \end{DoxyCompactList}\item 
void \hyperlink{class_main_app_af02b0266951cfd8a8e22900421d5fd50}{on\_\-spin\_\-internal\_\-particle\_\-no\_\-valueChanged} (const int \_\-value)
\begin{DoxyCompactList}\small\item\em change internal trace particle number \end{DoxyCompactList}\item 
void \hyperlink{class_main_app_a65635027797f6308293f45c930e1dd68}{on\_\-group\_\-trace\_\-clicked} (const bool \_\-checked)
\begin{DoxyCompactList}\small\item\em toggle internal trace \end{DoxyCompactList}\item 
void \hyperlink{class_main_app_a639f314ea437b8e8d75a2538175d70cc}{on\_\-spin\_\-cube\_\-position\_\-z\_\-valueChanged} (const int \_\-value)
\begin{DoxyCompactList}\small\item\em change z position for cube obstacle \end{DoxyCompactList}\item 
void \hyperlink{class_main_app_a07264be3f7756ccd87958f2ce64d1a83}{on\_\-spin\_\-cube\_\-position\_\-y\_\-valueChanged} (const int \_\-value)
\begin{DoxyCompactList}\small\item\em change y position for cube obstacle \end{DoxyCompactList}\item 
void \hyperlink{class_main_app_a19435af4457104eb75289ffc4baeb348}{on\_\-spin\_\-cube\_\-position\_\-x\_\-valueChanged} (const int \_\-value)
\begin{DoxyCompactList}\small\item\em change x position for cube obstacle \end{DoxyCompactList}\item 
void \hyperlink{class_main_app_a41b60c21be62e9bef368a41a9ea1c480}{on\_\-spin\_\-cube\_\-size\_\-z\_\-valueChanged} (const int \_\-value)
\begin{DoxyCompactList}\small\item\em change z size for cube obstacle \end{DoxyCompactList}\item 
void \hyperlink{class_main_app_a592887690e577ff5fc9054385d7c5ec7}{on\_\-spin\_\-cube\_\-size\_\-y\_\-valueChanged} (const int \_\-value)
\begin{DoxyCompactList}\small\item\em change y size for cube obstacle \end{DoxyCompactList}\item 
void \hyperlink{class_main_app_a84577b3c22f07e177dc27b8b03312528}{on\_\-spin\_\-cube\_\-size\_\-x\_\-valueChanged} (const int \_\-value)
\begin{DoxyCompactList}\small\item\em change x size for cube obstacle \end{DoxyCompactList}\item 
void \hyperlink{class_main_app_a88a68612cf0b0f6e1fbbe9d201c3ccd8}{on\_\-spin\_\-sphere\_\-position\_\-z\_\-valueChanged} (const int \_\-value)
\begin{DoxyCompactList}\small\item\em change z position for sphere obstacle \end{DoxyCompactList}\item 
void \hyperlink{class_main_app_a390c1b49136c737d5aa77fe628987a8b}{on\_\-spin\_\-sphere\_\-position\_\-y\_\-valueChanged} (const int \_\-value)
\begin{DoxyCompactList}\small\item\em change y position for sphere obstacle \end{DoxyCompactList}\item 
void \hyperlink{class_main_app_a91dac23c87b10563de4d1f395a0adbef}{on\_\-spin\_\-sphere\_\-position\_\-x\_\-valueChanged} (const int \_\-value)
\begin{DoxyCompactList}\small\item\em change x position for sphere obstacle \end{DoxyCompactList}\item 
void \hyperlink{class_main_app_a4ee874a88d6dc841f25b96ffd9e87309}{on\_\-spin\_\-sphere\_\-radius\_\-valueChanged} (const int \_\-value)
\begin{DoxyCompactList}\small\item\em change sphere radius \end{DoxyCompactList}\item 
void \hyperlink{class_main_app_a778eea6e64d4fa7bcadd39da37161cee}{on\_\-chk\_\-cube\_\-bbox\_\-clicked} (const bool \_\-checked)
\begin{DoxyCompactList}\small\item\em toggle bbox drawing of cube obstacle \end{DoxyCompactList}\item 
void \hyperlink{class_main_app_ab2f8b2b66488018d5f146b87ad704f47}{on\_\-group\_\-sphere\_\-clicked} (const bool \_\-checked)
\begin{DoxyCompactList}\small\item\em toggle sphere obstacle \end{DoxyCompactList}\item 
void \hyperlink{class_main_app_a84ed30f21d4260710b49a61380a5ed25}{on\_\-group\_\-cube\_\-clicked} (const bool \_\-checked)
\begin{DoxyCompactList}\small\item\em toggle cube obstacle \end{DoxyCompactList}\item 
void \hyperlink{class_main_app_a7806090c68e22d6ba430a13d7fca4bb7}{on\_\-group\_\-obstacle\_\-clicked} (const bool \_\-checked)
\begin{DoxyCompactList}\small\item\em toggle obstacle \end{DoxyCompactList}\item 
void \hyperlink{class_main_app_a8c4b40d6b8720742645314a3fcc15219}{on\_\-spin\_\-wind\_\-direction\_\-z\_\-valueChanged} (const int \_\-value)
\begin{DoxyCompactList}\small\item\em change wind z direction \end{DoxyCompactList}\item 
void \hyperlink{class_main_app_a8a16b441e0b3acc1c3cea7c1a049b991}{on\_\-spin\_\-wind\_\-direction\_\-y\_\-valueChanged} (const int \_\-value)
\begin{DoxyCompactList}\small\item\em change wind y direction \end{DoxyCompactList}\item 
void \hyperlink{class_main_app_a8e5194511f0d8b1008f8b8356a8d39fe}{on\_\-spin\_\-wind\_\-direction\_\-x\_\-valueChanged} (const int \_\-value)
\begin{DoxyCompactList}\small\item\em change wind x direction \end{DoxyCompactList}\item 
void \hyperlink{class_main_app_a5184c6b61dd1bd87225cde87ac1cb2f0}{on\_\-sld\_\-wind\_\-strength\_\-valueChanged} (const int \_\-value)
\begin{DoxyCompactList}\small\item\em change wind strength \end{DoxyCompactList}\item 
void \hyperlink{class_main_app_ab5924f7a2e99bfb81512d5d7c55b147f}{on\_\-chk\_\-spring\_\-bend\_\-clicked} (const bool \_\-checked)
\begin{DoxyCompactList}\small\item\em toggle bend springs \end{DoxyCompactList}\item 
void \hyperlink{class_main_app_a7647d74edbab5c34e52f9525c41763bc}{on\_\-chk\_\-spring\_\-stretch\_\-clicked} (const bool \_\-checked)
\begin{DoxyCompactList}\small\item\em toggle stretch springs \end{DoxyCompactList}\item 
void \hyperlink{class_main_app_a3b194edf53c947ee9236ea6d9b0b6f35}{on\_\-chk\_\-spring\_\-structural\_\-clicked} (const bool \_\-checked)
\begin{DoxyCompactList}\small\item\em toggle structural springs \end{DoxyCompactList}\item 
void \hyperlink{class_main_app_a3b05658f7aa637fbf860bdc5a82c1352}{on\_\-group\_\-wind\_\-clicked} (const bool \_\-checked)
\begin{DoxyCompactList}\small\item\em toggle wind \end{DoxyCompactList}\item 
void \hyperlink{class_main_app_ae28b70c1bca1ee3d1edfcf2af4375cb7}{on\_\-chk\_\-force\_\-gravity\_\-clicked} (const bool \_\-checked)
\begin{DoxyCompactList}\small\item\em toggle gravity \end{DoxyCompactList}\item 
void \hyperlink{class_main_app_abfe499d0dad41ac0946134654a153088}{on\_\-sld\_\-cloth\_\-dampiness\_\-valueChanged} (const int \_\-value)
\begin{DoxyCompactList}\small\item\em change damping coefficient \end{DoxyCompactList}\item 
void \hyperlink{class_main_app_a36bffbfcdee4058df0d8a150b7f7583b}{on\_\-sld\_\-cloth\_\-stiffness\_\-valueChanged} (const int \_\-value)
\begin{DoxyCompactList}\small\item\em change stiffness \end{DoxyCompactList}\item 
void \hyperlink{class_main_app_aad38a086373ac16b1e4ebb282ec289f6}{on\_\-cmb\_\-cloth\_\-material\_\-currentIndexChanged} (const int \_\-value)
\begin{DoxyCompactList}\small\item\em change material \end{DoxyCompactList}\item 
void \hyperlink{class_main_app_a5deb9a34627a899e1fcbe4155f409fb7}{on\_\-chk\_\-cloth\_\-wireframe\_\-clicked} (const bool \_\-checked)
\begin{DoxyCompactList}\small\item\em toggle drawing mode \end{DoxyCompactList}\item 
void \hyperlink{class_main_app_a3e0eae8b1e4aa5091a52747adb7c2aac}{on\_\-cmd\_\-reInitialiseSimulation\_\-clicked} ()
\begin{DoxyCompactList}\small\item\em reinitialise simulation with a scenario \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{class_main_app_a0bd09d04e4384fbd63b64988ac35abe1}{reInitialiseSimulation} (const \hyperlink{_cloth_8h_ae001644a85b583312feff94ad40e29af}{ConstrainedScenario} \_\-scenario)
\begin{DoxyCompactList}\small\item\em reinitialise simulation with batch parameters \end{DoxyCompactList}\item 
int \hyperlink{class_main_app_a79a7df574069d704c60bc040ea9f8b75}{toSliderValue} (const float \_\-lowerTrue, const int \_\-lowerSlider, const float \_\-lowerX)
\begin{DoxyCompactList}\small\item\em convert a value from the simulation to that on the slider, given the range \end{DoxyCompactList}\item 
float \hyperlink{class_main_app_a0424edd1e7f7bf1effb64a616dbaa41c}{fromSliderValue} (const float \_\-lowerTrue, const int \_\-lowerSlider, const int \_\-lowerX)
\begin{DoxyCompactList}\small\item\em convert a value on the slider to the simulation, given the range \end{DoxyCompactList}\item 
void \hyperlink{class_main_app_a8947167d51717eb956ea8238906e0a6c}{setupConnections} ()
\begin{DoxyCompactList}\small\item\em setup up the UI intial values and connects signals/slots \end{DoxyCompactList}\item 
void \hyperlink{class_main_app_ade31678bed8071504756ddb02599dc8f}{keyPressEvent} (QKeyEvent $\ast$\_\-event)
\begin{DoxyCompactList}\small\item\em override the keyPressEvent inherited from QObject so we can handle key presses. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
Ui::MainWindow $\ast$ \hyperlink{class_main_app_a4293f05676b5fdec0609673637bc63a2}{m\_\-ui}
\begin{DoxyCompactList}\small\item\em the handle to the main GUI window, used for creating all the UI and the gl window \end{DoxyCompactList}\item 
\hyperlink{class_simulation_manager}{SimulationManager} $\ast$ \hyperlink{class_main_app_a29691ed147f9a0a066038fc0801ee53b}{m\_\-simulationManager}
\begin{DoxyCompactList}\small\item\em the main gl context that is used for drawing and creation of the cloth simulation \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
contains all the UI extended from MainWindow.ui and our GLWindow 

Definition at line 23 of file MainApp.h.



\subsection{Constructor \& Destructor Documentation}
\hypertarget{class_main_app_a56f50de886e9ee9c4192b21eccdfe96b}{
\index{MainApp@{MainApp}!MainApp@{MainApp}}
\index{MainApp@{MainApp}!MainApp@{MainApp}}
\subsubsection[{MainApp}]{\setlength{\rightskip}{0pt plus 5cm}MainApp::MainApp (
\begin{DoxyParamCaption}
\item[{QWidget $\ast$}]{\_\-parent = {\ttfamily 0}}
\end{DoxyParamCaption}
)}}
\label{class_main_app_a56f50de886e9ee9c4192b21eccdfe96b}


ctor 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em \_\-parent} & the main application window for the GUI \\
\hline
\end{DoxyParams}


Definition at line 11 of file MainApp.cpp.


\begin{DoxyCode}
                 :
                QMainWindow(_parent),
                m_ui(new Ui::MainWindow)
{
    // setup the user interface
    m_ui->setupUi(this);

    //create a new instance of the world and give it an initial aspect ratio
    m_simulationManager = new SimulationManager(this);

    m_ui->s_mainGridLayout->addWidget(m_simulationManager, 0, 0, 4, 2);

    //setup signals/slots
    setupConnections();
}
\end{DoxyCode}
\hypertarget{class_main_app_a1da72f01017840ab6165e33b76cc8482}{
\index{MainApp@{MainApp}!$\sim$MainApp@{$\sim$MainApp}}
\index{$\sim$MainApp@{$\sim$MainApp}!MainApp@{MainApp}}
\subsubsection[{$\sim$MainApp}]{\setlength{\rightskip}{0pt plus 5cm}MainApp::$\sim$MainApp (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{class_main_app_a1da72f01017840ab6165e33b76cc8482}


dtor 



Definition at line 29 of file MainApp.cpp.



References m\_\-ui.


\begin{DoxyCode}
{
    delete m_ui;
}
\end{DoxyCode}


\subsection{Member Function Documentation}
\hypertarget{class_main_app_a0424edd1e7f7bf1effb64a616dbaa41c}{
\index{MainApp@{MainApp}!fromSliderValue@{fromSliderValue}}
\index{fromSliderValue@{fromSliderValue}!MainApp@{MainApp}}
\subsubsection[{fromSliderValue}]{\setlength{\rightskip}{0pt plus 5cm}float MainApp::fromSliderValue (
\begin{DoxyParamCaption}
\item[{const float}]{\_\-lowerTrue, }
\item[{const int}]{\_\-lowerSlider, }
\item[{const int}]{\_\-lowerX}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{class_main_app_a0424edd1e7f7bf1effb64a616dbaa41c}


convert a value on the slider to the simulation, given the range 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em \_\-lowerTrue} & the lower value from the simulation \\
\hline
\mbox{\tt in}  & {\em \_\-lowerSlider} & the lower value of the slider \\
\hline
\mbox{\tt in}  & {\em \_\-lowerX} & the value from the slider to convert \\
\hline
\end{DoxyParams}


Definition at line 147 of file MainApp.cpp.


\begin{DoxyCode}
{
    float ratio = (float)_lowerSlider / _lowerTrue;
    return (float)_lowerX / ratio;
}
\end{DoxyCode}


Here is the caller graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_a0424edd1e7f7bf1effb64a616dbaa41c_icgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_ade31678bed8071504756ddb02599dc8f}{
\index{MainApp@{MainApp}!keyPressEvent@{keyPressEvent}}
\index{keyPressEvent@{keyPressEvent}!MainApp@{MainApp}}
\subsubsection[{keyPressEvent}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::keyPressEvent (
\begin{DoxyParamCaption}
\item[{QKeyEvent $\ast$}]{\_\-event}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{class_main_app_ade31678bed8071504756ddb02599dc8f}


override the keyPressEvent inherited from QObject so we can handle key presses. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em \_\-event} & the event to process \\
\hline
\end{DoxyParams}


Definition at line 115 of file MainApp.cpp.



References SimulationManager::keyPress(), and m\_\-simulationManager.


\begin{DoxyCode}
{
    // this method is called every time the main window recives a key event.
    this->setFocus(Qt::ActiveWindowFocusReason);

    switch (_event->key())
    {
        case Qt::Key_Escape : QApplication::exit(EXIT_SUCCESS); break;

        case Qt::Key_M : showFullScreen(); break;
        case Qt::Key_N : showNormal(); break;

        default : break;
    }

    m_simulationManager->keyPress(_event);
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_ade31678bed8071504756ddb02599dc8f_cgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_a5deb9a34627a899e1fcbe4155f409fb7}{
\index{MainApp@{MainApp}!on\_\-chk\_\-cloth\_\-wireframe\_\-clicked@{on\_\-chk\_\-cloth\_\-wireframe\_\-clicked}}
\index{on\_\-chk\_\-cloth\_\-wireframe\_\-clicked@{on\_\-chk\_\-cloth\_\-wireframe\_\-clicked}!MainApp@{MainApp}}
\subsubsection[{on\_\-chk\_\-cloth\_\-wireframe\_\-clicked}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::on\_\-chk\_\-cloth\_\-wireframe\_\-clicked (
\begin{DoxyParamCaption}
\item[{const bool}]{\_\-checked}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, slot\mbox{]}}}}
\label{class_main_app_a5deb9a34627a899e1fcbe4155f409fb7}


toggle drawing mode 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em \_\-checked} & toggle flag for wireframe \\
\hline
\end{DoxyParams}


Definition at line 193 of file MainApp.cpp.



References SimulationManager::getCloth(), m\_\-simulationManager, and Cloth::setDrawWireframe().


\begin{DoxyCode}
{
    //update simulation drawing mode
    m_simulationManager->getCloth()->setDrawWireframe(_checked);

    //refresh view
    m_simulationManager->updateGL();
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_a5deb9a34627a899e1fcbe4155f409fb7_cgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_a778eea6e64d4fa7bcadd39da37161cee}{
\index{MainApp@{MainApp}!on\_\-chk\_\-cube\_\-bbox\_\-clicked@{on\_\-chk\_\-cube\_\-bbox\_\-clicked}}
\index{on\_\-chk\_\-cube\_\-bbox\_\-clicked@{on\_\-chk\_\-cube\_\-bbox\_\-clicked}!MainApp@{MainApp}}
\subsubsection[{on\_\-chk\_\-cube\_\-bbox\_\-clicked}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::on\_\-chk\_\-cube\_\-bbox\_\-clicked (
\begin{DoxyParamCaption}
\item[{const bool}]{\_\-checked}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, slot\mbox{]}}}}
\label{class_main_app_a778eea6e64d4fa7bcadd39da37161cee}


toggle bbox drawing of cube obstacle 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em \_\-checked} & toggle value \\
\hline
\end{DoxyParams}


Definition at line 311 of file MainApp.cpp.



References SimulationManager::getObstacleManager(), m\_\-simulationManager, and ObstacleManager::setDrawBBox().


\begin{DoxyCode}
{
    //update obstacle manager draw bbox toggle
    m_simulationManager->getObstacleManager()->setDrawBBox(_checked);

    //refresh view
    m_simulationManager->updateGL();
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_a778eea6e64d4fa7bcadd39da37161cee_cgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_ae28b70c1bca1ee3d1edfcf2af4375cb7}{
\index{MainApp@{MainApp}!on\_\-chk\_\-force\_\-gravity\_\-clicked@{on\_\-chk\_\-force\_\-gravity\_\-clicked}}
\index{on\_\-chk\_\-force\_\-gravity\_\-clicked@{on\_\-chk\_\-force\_\-gravity\_\-clicked}!MainApp@{MainApp}}
\subsubsection[{on\_\-chk\_\-force\_\-gravity\_\-clicked}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::on\_\-chk\_\-force\_\-gravity\_\-clicked (
\begin{DoxyParamCaption}
\item[{const bool}]{\_\-checked}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, slot\mbox{]}}}}
\label{class_main_app_ae28b70c1bca1ee3d1edfcf2af4375cb7}


toggle gravity 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em \_\-checked} & toggle value \\
\hline
\end{DoxyParams}


Definition at line 230 of file MainApp.cpp.



References SimulationManager::getCloth(), m\_\-simulationManager, and Cloth::setEnableGravity().


\begin{DoxyCode}
{
    //update gravity toggle of sim
    m_simulationManager->getCloth()->setEnableGravity(_checked);
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_ae28b70c1bca1ee3d1edfcf2af4375cb7_cgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_ae0b2400965586b2002bae3dcaaccf6a8}{
\index{MainApp@{MainApp}!on\_\-chk\_\-internal\_\-pinned\_\-clicked@{on\_\-chk\_\-internal\_\-pinned\_\-clicked}}
\index{on\_\-chk\_\-internal\_\-pinned\_\-clicked@{on\_\-chk\_\-internal\_\-pinned\_\-clicked}!MainApp@{MainApp}}
\subsubsection[{on\_\-chk\_\-internal\_\-pinned\_\-clicked}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::on\_\-chk\_\-internal\_\-pinned\_\-clicked (
\begin{DoxyParamCaption}
\item[{const bool}]{\_\-checked}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, slot\mbox{]}}}}
\label{class_main_app_ae0b2400965586b2002bae3dcaaccf6a8}


toggle pin of trace particle 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em \_\-checked} & toggle value \\
\hline
\end{DoxyParams}


Definition at line 440 of file MainApp.cpp.



References SimulationManager::getCloth(), m\_\-simulationManager, and Cloth::pinInternalTraceParticle().


\begin{DoxyCode}
{
    //toggle pin of current particle
    m_simulationManager->getCloth()->pinInternalTraceParticle(_checked);

    //refresh view
    m_simulationManager->updateGL();
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_ae0b2400965586b2002bae3dcaaccf6a8_cgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_aec985e4ebcaede90c4e92a22576cdf38}{
\index{MainApp@{MainApp}!on\_\-chk\_\-internal\_\-traceNeighbours\_\-clicked@{on\_\-chk\_\-internal\_\-traceNeighbours\_\-clicked}}
\index{on\_\-chk\_\-internal\_\-traceNeighbours\_\-clicked@{on\_\-chk\_\-internal\_\-traceNeighbours\_\-clicked}!MainApp@{MainApp}}
\subsubsection[{on\_\-chk\_\-internal\_\-traceNeighbours\_\-clicked}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::on\_\-chk\_\-internal\_\-traceNeighbours\_\-clicked (
\begin{DoxyParamCaption}
\item[{const bool}]{\_\-checked}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, slot\mbox{]}}}}
\label{class_main_app_aec985e4ebcaede90c4e92a22576cdf38}


toggle internal trace on neighbours springs 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em \_\-checked} & toggle value \\
\hline
\end{DoxyParams}


Definition at line 431 of file MainApp.cpp.



References SimulationManager::getCloth(), m\_\-simulationManager, and Cloth::setEnableInternalTraceNeighbours().


\begin{DoxyCode}
{
    //toggle tracing of particle with neighbours
    m_simulationManager->getCloth()->setEnableInternalTraceNeighbours(_checked);

    //refresh view
    m_simulationManager->updateGL();
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_aec985e4ebcaede90c4e92a22576cdf38_cgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_ab5924f7a2e99bfb81512d5d7c55b147f}{
\index{MainApp@{MainApp}!on\_\-chk\_\-spring\_\-bend\_\-clicked@{on\_\-chk\_\-spring\_\-bend\_\-clicked}}
\index{on\_\-chk\_\-spring\_\-bend\_\-clicked@{on\_\-chk\_\-spring\_\-bend\_\-clicked}!MainApp@{MainApp}}
\subsubsection[{on\_\-chk\_\-spring\_\-bend\_\-clicked}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::on\_\-chk\_\-spring\_\-bend\_\-clicked (
\begin{DoxyParamCaption}
\item[{const bool}]{\_\-checked}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, slot\mbox{]}}}}
\label{class_main_app_ab5924f7a2e99bfb81512d5d7c55b147f}


toggle bend springs 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em \_\-checked} & toggle value \\
\hline
\end{DoxyParams}


Definition at line 254 of file MainApp.cpp.



References SimulationManager::getCloth(), m\_\-simulationManager, and Cloth::setEnableHookeBend().


\begin{DoxyCode}
{
    //update flex spring toggle of sim
    m_simulationManager->getCloth()->setEnableHookeBend(_checked);
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_ab5924f7a2e99bfb81512d5d7c55b147f_cgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_a7647d74edbab5c34e52f9525c41763bc}{
\index{MainApp@{MainApp}!on\_\-chk\_\-spring\_\-stretch\_\-clicked@{on\_\-chk\_\-spring\_\-stretch\_\-clicked}}
\index{on\_\-chk\_\-spring\_\-stretch\_\-clicked@{on\_\-chk\_\-spring\_\-stretch\_\-clicked}!MainApp@{MainApp}}
\subsubsection[{on\_\-chk\_\-spring\_\-stretch\_\-clicked}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::on\_\-chk\_\-spring\_\-stretch\_\-clicked (
\begin{DoxyParamCaption}
\item[{const bool}]{\_\-checked}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, slot\mbox{]}}}}
\label{class_main_app_a7647d74edbab5c34e52f9525c41763bc}


toggle stretch springs 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em \_\-checked} & toggle value \\
\hline
\end{DoxyParams}


Definition at line 248 of file MainApp.cpp.



References SimulationManager::getCloth(), m\_\-simulationManager, and Cloth::setEnableHookeStretch().


\begin{DoxyCode}
{
    //update shear spring toggle of sim
    m_simulationManager->getCloth()->setEnableHookeStretch(_checked);
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_a7647d74edbab5c34e52f9525c41763bc_cgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_a3b194edf53c947ee9236ea6d9b0b6f35}{
\index{MainApp@{MainApp}!on\_\-chk\_\-spring\_\-structural\_\-clicked@{on\_\-chk\_\-spring\_\-structural\_\-clicked}}
\index{on\_\-chk\_\-spring\_\-structural\_\-clicked@{on\_\-chk\_\-spring\_\-structural\_\-clicked}!MainApp@{MainApp}}
\subsubsection[{on\_\-chk\_\-spring\_\-structural\_\-clicked}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::on\_\-chk\_\-spring\_\-structural\_\-clicked (
\begin{DoxyParamCaption}
\item[{const bool}]{\_\-checked}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, slot\mbox{]}}}}
\label{class_main_app_a3b194edf53c947ee9236ea6d9b0b6f35}


toggle structural springs 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em \_\-checked} & toggle value \\
\hline
\end{DoxyParams}


Definition at line 242 of file MainApp.cpp.



References SimulationManager::getCloth(), m\_\-simulationManager, and Cloth::setEnableHookeStructural().


\begin{DoxyCode}
{
    //update structural spring toggle of sim
    m_simulationManager->getCloth()->setEnableHookeStructural(_checked);
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_a3b194edf53c947ee9236ea6d9b0b6f35_cgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_aad38a086373ac16b1e4ebb282ec289f6}{
\index{MainApp@{MainApp}!on\_\-cmb\_\-cloth\_\-material\_\-currentIndexChanged@{on\_\-cmb\_\-cloth\_\-material\_\-currentIndexChanged}}
\index{on\_\-cmb\_\-cloth\_\-material\_\-currentIndexChanged@{on\_\-cmb\_\-cloth\_\-material\_\-currentIndexChanged}!MainApp@{MainApp}}
\subsubsection[{on\_\-cmb\_\-cloth\_\-material\_\-currentIndexChanged}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::on\_\-cmb\_\-cloth\_\-material\_\-currentIndexChanged (
\begin{DoxyParamCaption}
\item[{const int}]{\_\-value}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, slot\mbox{]}}}}
\label{class_main_app_aad38a086373ac16b1e4ebb282ec289f6}


change material 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em \_\-value} & new material index \\
\hline
\end{DoxyParams}


Definition at line 202 of file MainApp.cpp.



References SimulationManager::getCloth(), Cloth::getDamping(), Cloth::getStiffness(), m\_\-simulationManager, m\_\-ui, Cloth::setCurrentClothMaterial(), and toSliderValue().


\begin{DoxyCode}
{
    //get the selected text
    std::string text = m_ui->cmb_cloth_material->itemText(_index).toStdString();

    //update simulation cloth material
    m_simulationManager->getCloth()->setCurrentClothMaterial(text);

    //damping and stiffness are changed -> update them on the gui
    m_ui->sld_cloth_stiffness->setValue(toSliderValue(1, 1, m_simulationManager->
      getCloth()->getStiffness()));
    m_ui->sld_cloth_dampiness->setValue(toSliderValue(0.01, 1, 
      m_simulationManager->getCloth()->getDamping()));

    //refresh view
    m_simulationManager->updateGL();
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_aad38a086373ac16b1e4ebb282ec289f6_cgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_af4e2a5ecd0154ffb601178c801f07566}{
\index{MainApp@{MainApp}!on\_\-cmd\_\-2DFrontView\_\-clicked@{on\_\-cmd\_\-2DFrontView\_\-clicked}}
\index{on\_\-cmd\_\-2DFrontView\_\-clicked@{on\_\-cmd\_\-2DFrontView\_\-clicked}!MainApp@{MainApp}}
\subsubsection[{on\_\-cmd\_\-2DFrontView\_\-clicked}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::on\_\-cmd\_\-2DFrontView\_\-clicked (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, slot\mbox{]}}}}
\label{class_main_app_af4e2a5ecd0154ffb601178c801f07566}


change view to front view 



Definition at line 527 of file MainApp.cpp.



References m\_\-simulationManager, and SimulationManager::setup2DFrontView().


\begin{DoxyCode}
{
    //setup front view
    m_simulationManager->setup2DFrontView();
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_af4e2a5ecd0154ffb601178c801f07566_cgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_a9d8e98206b1f9edecc0ac582cf8dd35b}{
\index{MainApp@{MainApp}!on\_\-cmd\_\-2DTopView\_\-clicked@{on\_\-cmd\_\-2DTopView\_\-clicked}}
\index{on\_\-cmd\_\-2DTopView\_\-clicked@{on\_\-cmd\_\-2DTopView\_\-clicked}!MainApp@{MainApp}}
\subsubsection[{on\_\-cmd\_\-2DTopView\_\-clicked}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::on\_\-cmd\_\-2DTopView\_\-clicked (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, slot\mbox{]}}}}
\label{class_main_app_a9d8e98206b1f9edecc0ac582cf8dd35b}


change view to top view 



Definition at line 521 of file MainApp.cpp.



References m\_\-simulationManager, and SimulationManager::setup2DTopView().


\begin{DoxyCode}
{
    //setup top view
    m_simulationManager->setup2DTopView();
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_a9d8e98206b1f9edecc0ac582cf8dd35b_cgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_a1f20f48cc0bfe332b4f069a3aeafa38b}{
\index{MainApp@{MainApp}!on\_\-cmd\_\-autoMove\_\-clicked@{on\_\-cmd\_\-autoMove\_\-clicked}}
\index{on\_\-cmd\_\-autoMove\_\-clicked@{on\_\-cmd\_\-autoMove\_\-clicked}!MainApp@{MainApp}}
\subsubsection[{on\_\-cmd\_\-autoMove\_\-clicked}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::on\_\-cmd\_\-autoMove\_\-clicked (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, slot\mbox{]}}}}
\label{class_main_app_a1f20f48cc0bfe332b4f069a3aeafa38b}


toggle automove for cloth simulation 



Definition at line 584 of file MainApp.cpp.



References SimulationManager::getCloth(), Cloth::getEnableAutoCloth(), m\_\-simulationManager, m\_\-ui, and Cloth::toggleEnableAutoCloth().


\begin{DoxyCode}
{
    //toggle auto movement

    //change the name of the command button depending on the state of automove
    m_ui->cmd_autoMove->setText(!m_simulationManager->getCloth()->
      getEnableAutoCloth() ? "AutoMove Stop" : "AutoMove Start");

    //toggle the automove state
    m_simulationManager->getCloth()->toggleEnableAutoCloth();
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_a1f20f48cc0bfe332b4f069a3aeafa38b_cgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_a5f327d09234e364dc3d3a84ae5f984a3}{
\index{MainApp@{MainApp}!on\_\-cmd\_\-internal\_\-pinAll\_\-clicked@{on\_\-cmd\_\-internal\_\-pinAll\_\-clicked}}
\index{on\_\-cmd\_\-internal\_\-pinAll\_\-clicked@{on\_\-cmd\_\-internal\_\-pinAll\_\-clicked}!MainApp@{MainApp}}
\subsubsection[{on\_\-cmd\_\-internal\_\-pinAll\_\-clicked}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::on\_\-cmd\_\-internal\_\-pinAll\_\-clicked (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, slot\mbox{]}}}}
\label{class_main_app_a5f327d09234e364dc3d3a84ae5f984a3}


pin all particles 



Definition at line 449 of file MainApp.cpp.



References SimulationManager::getCloth(), Cloth::getInternalTraceParticle(), Particle::getMoveable(), m\_\-simulationManager, m\_\-ui, and Cloth::pinAll().


\begin{DoxyCode}
{
    //pin all particles
    m_simulationManager->getCloth()->pinAll(true);

    //modify trace particle pin info
    m_ui->chk_internal_pinned->setChecked(!m_simulationManager->getCloth()->
      getInternalTraceParticle()->getMoveable());

    //refresh view
    m_simulationManager->updateGL();
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_a5f327d09234e364dc3d3a84ae5f984a3_cgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_ac0ab6908fa518b6067682285bf117551}{
\index{MainApp@{MainApp}!on\_\-cmd\_\-internal\_\-pinColumn\_\-clicked@{on\_\-cmd\_\-internal\_\-pinColumn\_\-clicked}}
\index{on\_\-cmd\_\-internal\_\-pinColumn\_\-clicked@{on\_\-cmd\_\-internal\_\-pinColumn\_\-clicked}!MainApp@{MainApp}}
\subsubsection[{on\_\-cmd\_\-internal\_\-pinColumn\_\-clicked}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::on\_\-cmd\_\-internal\_\-pinColumn\_\-clicked (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, slot\mbox{]}}}}
\label{class_main_app_ac0ab6908fa518b6067682285bf117551}


pin a column 



Definition at line 497 of file MainApp.cpp.



References SimulationManager::getCloth(), Cloth::getInternalTraceParticle(), Particle::getMoveable(), m\_\-simulationManager, m\_\-ui, and Cloth::pinColumn().


\begin{DoxyCode}
{
    //unpin particles from current row
    m_simulationManager->getCloth()->pinColumn(true);

    //modify trace particle pin info
    m_ui->chk_internal_pinned->setChecked(!m_simulationManager->getCloth()->
      getInternalTraceParticle()->getMoveable());

    //refresh view
    m_simulationManager->updateGL();
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_ac0ab6908fa518b6067682285bf117551_cgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_a4f6b27c87310c40ca1c3e31da0fddc01}{
\index{MainApp@{MainApp}!on\_\-cmd\_\-internal\_\-pinRow\_\-clicked@{on\_\-cmd\_\-internal\_\-pinRow\_\-clicked}}
\index{on\_\-cmd\_\-internal\_\-pinRow\_\-clicked@{on\_\-cmd\_\-internal\_\-pinRow\_\-clicked}!MainApp@{MainApp}}
\subsubsection[{on\_\-cmd\_\-internal\_\-pinRow\_\-clicked}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::on\_\-cmd\_\-internal\_\-pinRow\_\-clicked (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, slot\mbox{]}}}}
\label{class_main_app_a4f6b27c87310c40ca1c3e31da0fddc01}


pin a row 



Definition at line 473 of file MainApp.cpp.



References SimulationManager::getCloth(), Cloth::getInternalTraceParticle(), Particle::getMoveable(), m\_\-simulationManager, m\_\-ui, and Cloth::pinRow().


\begin{DoxyCode}
{
    //pin particles from current row
    m_simulationManager->getCloth()->pinRow(true);

    //modify trace particle pin info
    m_ui->chk_internal_pinned->setChecked(!m_simulationManager->getCloth()->
      getInternalTraceParticle()->getMoveable());

    //refresh view
    m_simulationManager->updateGL();
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_a4f6b27c87310c40ca1c3e31da0fddc01_cgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_afc6fb50af1bc3162f065bb2a1f6b8b1c}{
\index{MainApp@{MainApp}!on\_\-cmd\_\-internal\_\-unpinAll\_\-clicked@{on\_\-cmd\_\-internal\_\-unpinAll\_\-clicked}}
\index{on\_\-cmd\_\-internal\_\-unpinAll\_\-clicked@{on\_\-cmd\_\-internal\_\-unpinAll\_\-clicked}!MainApp@{MainApp}}
\subsubsection[{on\_\-cmd\_\-internal\_\-unpinAll\_\-clicked}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::on\_\-cmd\_\-internal\_\-unpinAll\_\-clicked (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, slot\mbox{]}}}}
\label{class_main_app_afc6fb50af1bc3162f065bb2a1f6b8b1c}


unpin all particles 



Definition at line 461 of file MainApp.cpp.



References SimulationManager::getCloth(), Cloth::getInternalTraceParticle(), Particle::getMoveable(), m\_\-simulationManager, m\_\-ui, and Cloth::pinAll().


\begin{DoxyCode}
{
    //unpin all particles
    m_simulationManager->getCloth()->pinAll(false);

    //modify trace particle pin info
    m_ui->chk_internal_pinned->setChecked(!m_simulationManager->getCloth()->
      getInternalTraceParticle()->getMoveable());

    //refresh view
    m_simulationManager->updateGL();
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_afc6fb50af1bc3162f065bb2a1f6b8b1c_cgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_a8c45b053060a7d1712b5197938dea563}{
\index{MainApp@{MainApp}!on\_\-cmd\_\-internal\_\-unpinColumn\_\-clicked@{on\_\-cmd\_\-internal\_\-unpinColumn\_\-clicked}}
\index{on\_\-cmd\_\-internal\_\-unpinColumn\_\-clicked@{on\_\-cmd\_\-internal\_\-unpinColumn\_\-clicked}!MainApp@{MainApp}}
\subsubsection[{on\_\-cmd\_\-internal\_\-unpinColumn\_\-clicked}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::on\_\-cmd\_\-internal\_\-unpinColumn\_\-clicked (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, slot\mbox{]}}}}
\label{class_main_app_a8c45b053060a7d1712b5197938dea563}


unpin a column 



Definition at line 509 of file MainApp.cpp.



References SimulationManager::getCloth(), Cloth::getInternalTraceParticle(), Particle::getMoveable(), m\_\-simulationManager, m\_\-ui, and Cloth::pinColumn().


\begin{DoxyCode}
{
    //unpin particles from current row
    m_simulationManager->getCloth()->pinColumn(false);

    //modify trace particle pin info
    m_ui->chk_internal_pinned->setChecked(!m_simulationManager->getCloth()->
      getInternalTraceParticle()->getMoveable());

    //refresh view
    m_simulationManager->updateGL();
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_a8c45b053060a7d1712b5197938dea563_cgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_a36ab7cd93ce97542e9661482aeb4095f}{
\index{MainApp@{MainApp}!on\_\-cmd\_\-internal\_\-unpinRow\_\-clicked@{on\_\-cmd\_\-internal\_\-unpinRow\_\-clicked}}
\index{on\_\-cmd\_\-internal\_\-unpinRow\_\-clicked@{on\_\-cmd\_\-internal\_\-unpinRow\_\-clicked}!MainApp@{MainApp}}
\subsubsection[{on\_\-cmd\_\-internal\_\-unpinRow\_\-clicked}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::on\_\-cmd\_\-internal\_\-unpinRow\_\-clicked (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, slot\mbox{]}}}}
\label{class_main_app_a36ab7cd93ce97542e9661482aeb4095f}


unpin a row 



Definition at line 485 of file MainApp.cpp.



References SimulationManager::getCloth(), Cloth::getInternalTraceParticle(), Particle::getMoveable(), m\_\-simulationManager, m\_\-ui, and Cloth::pinRow().


\begin{DoxyCode}
{
    //unpin particles from current row
    m_simulationManager->getCloth()->pinRow(false);

    //modify trace particle pin info
    m_ui->chk_internal_pinned->setChecked(!m_simulationManager->getCloth()->
      getInternalTraceParticle()->getMoveable());

    //refresh view
    m_simulationManager->updateGL();
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_a36ab7cd93ce97542e9661482aeb4095f_cgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_a3e0eae8b1e4aa5091a52747adb7c2aac}{
\index{MainApp@{MainApp}!on\_\-cmd\_\-reInitialiseSimulation\_\-clicked@{on\_\-cmd\_\-reInitialiseSimulation\_\-clicked}}
\index{on\_\-cmd\_\-reInitialiseSimulation\_\-clicked@{on\_\-cmd\_\-reInitialiseSimulation\_\-clicked}!MainApp@{MainApp}}
\subsubsection[{on\_\-cmd\_\-reInitialiseSimulation\_\-clicked}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::on\_\-cmd\_\-reInitialiseSimulation\_\-clicked (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, slot\mbox{]}}}}
\label{class_main_app_a3e0eae8b1e4aa5091a52747adb7c2aac}


reinitialise simulation with a scenario 



Definition at line 533 of file MainApp.cpp.



References SimulationManager::getCloth(), Cloth::getScenario(), m\_\-simulationManager, and reInitialiseSimulation().


\begin{DoxyCode}
{
    //re initialise sim with current scenario
    reInitialiseSimulation(m_simulationManager->getCloth()->getScenario());
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_a3e0eae8b1e4aa5091a52747adb7c2aac_cgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_a35c05bcd9363325e9b8af51828dda15b}{
\index{MainApp@{MainApp}!on\_\-cmd\_\-sim\_\-banner\_\-clicked@{on\_\-cmd\_\-sim\_\-banner\_\-clicked}}
\index{on\_\-cmd\_\-sim\_\-banner\_\-clicked@{on\_\-cmd\_\-sim\_\-banner\_\-clicked}!MainApp@{MainApp}}
\subsubsection[{on\_\-cmd\_\-sim\_\-banner\_\-clicked}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::on\_\-cmd\_\-sim\_\-banner\_\-clicked (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, slot\mbox{]}}}}
\label{class_main_app_a35c05bcd9363325e9b8af51828dda15b}


activate banner scenario 



Definition at line 563 of file MainApp.cpp.



References BANNER, and reInitialiseSimulation().


\begin{DoxyCode}
{
    //re initialise sim with banner scenario
    reInitialiseSimulation(BANNER);
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_a35c05bcd9363325e9b8af51828dda15b_cgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_ae1c6d4fe96f0c44858921cb136bbb6ea}{
\index{MainApp@{MainApp}!on\_\-cmd\_\-sim\_\-curtain\_\-clicked@{on\_\-cmd\_\-sim\_\-curtain\_\-clicked}}
\index{on\_\-cmd\_\-sim\_\-curtain\_\-clicked@{on\_\-cmd\_\-sim\_\-curtain\_\-clicked}!MainApp@{MainApp}}
\subsubsection[{on\_\-cmd\_\-sim\_\-curtain\_\-clicked}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::on\_\-cmd\_\-sim\_\-curtain\_\-clicked (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, slot\mbox{]}}}}
\label{class_main_app_ae1c6d4fe96f0c44858921cb136bbb6ea}


activate curtain scenario 



Definition at line 545 of file MainApp.cpp.



References LIGHT\_\-CURTAIN, and reInitialiseSimulation().


\begin{DoxyCode}
{
    //re initialise sim with light curtain scenario
    reInitialiseSimulation(LIGHT_CURTAIN);
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_ae1c6d4fe96f0c44858921cb136bbb6ea_cgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_aad20e565bbf1e457a09f2a4f32c685ea}{
\index{MainApp@{MainApp}!on\_\-cmd\_\-sim\_\-flag\_\-clicked@{on\_\-cmd\_\-sim\_\-flag\_\-clicked}}
\index{on\_\-cmd\_\-sim\_\-flag\_\-clicked@{on\_\-cmd\_\-sim\_\-flag\_\-clicked}!MainApp@{MainApp}}
\subsubsection[{on\_\-cmd\_\-sim\_\-flag\_\-clicked}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::on\_\-cmd\_\-sim\_\-flag\_\-clicked (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, slot\mbox{]}}}}
\label{class_main_app_aad20e565bbf1e457a09f2a4f32c685ea}


activate flag scenario 



Definition at line 557 of file MainApp.cpp.



References FLAG, and reInitialiseSimulation().


\begin{DoxyCode}
{
    //re initialise sim with flag scenario
    reInitialiseSimulation(FLAG);
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_aad20e565bbf1e457a09f2a4f32c685ea_cgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_a96369311b5224b32640af9b55c3cca74}{
\index{MainApp@{MainApp}!on\_\-cmd\_\-sim\_\-shelter\_\-clicked@{on\_\-cmd\_\-sim\_\-shelter\_\-clicked}}
\index{on\_\-cmd\_\-sim\_\-shelter\_\-clicked@{on\_\-cmd\_\-sim\_\-shelter\_\-clicked}!MainApp@{MainApp}}
\subsubsection[{on\_\-cmd\_\-sim\_\-shelter\_\-clicked}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::on\_\-cmd\_\-sim\_\-shelter\_\-clicked (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, slot\mbox{]}}}}
\label{class_main_app_a96369311b5224b32640af9b55c3cca74}


activate shelter scenario 



Definition at line 551 of file MainApp.cpp.



References reInitialiseSimulation(), and SHELTER.


\begin{DoxyCode}
{
    //re initialise sim with shelter scenario
    reInitialiseSimulation(SHELTER);
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_a96369311b5224b32640af9b55c3cca74_cgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_a667f9cd21b4ea50aa3103c17d142a4c8}{
\index{MainApp@{MainApp}!on\_\-cmd\_\-sim\_\-solidCurtain\_\-clicked@{on\_\-cmd\_\-sim\_\-solidCurtain\_\-clicked}}
\index{on\_\-cmd\_\-sim\_\-solidCurtain\_\-clicked@{on\_\-cmd\_\-sim\_\-solidCurtain\_\-clicked}!MainApp@{MainApp}}
\subsubsection[{on\_\-cmd\_\-sim\_\-solidCurtain\_\-clicked}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::on\_\-cmd\_\-sim\_\-solidCurtain\_\-clicked (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, slot\mbox{]}}}}
\label{class_main_app_a667f9cd21b4ea50aa3103c17d142a4c8}


activate solid curtain scenario 



Definition at line 569 of file MainApp.cpp.



References reInitialiseSimulation(), and SOLID\_\-CURTAIN.


\begin{DoxyCode}
{
    //re initialise sim with solid curtain scenario
    reInitialiseSimulation(SOLID_CURTAIN);
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_a667f9cd21b4ea50aa3103c17d142a4c8_cgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_a5303b9182a7442f725c7f1e10ab49785}{
\index{MainApp@{MainApp}!on\_\-cmd\_\-sim\_\-tablecloth\_\-clicked@{on\_\-cmd\_\-sim\_\-tablecloth\_\-clicked}}
\index{on\_\-cmd\_\-sim\_\-tablecloth\_\-clicked@{on\_\-cmd\_\-sim\_\-tablecloth\_\-clicked}!MainApp@{MainApp}}
\subsubsection[{on\_\-cmd\_\-sim\_\-tablecloth\_\-clicked}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::on\_\-cmd\_\-sim\_\-tablecloth\_\-clicked (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, slot\mbox{]}}}}
\label{class_main_app_a5303b9182a7442f725c7f1e10ab49785}


activate tablecloth scenario 



Definition at line 539 of file MainApp.cpp.



References reInitialiseSimulation(), and TABLECLOTH.


\begin{DoxyCode}
{
    //re initialise sim with tablecloth scenario
    reInitialiseSimulation(TABLECLOTH);
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_a5303b9182a7442f725c7f1e10ab49785_cgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_a44b46c785e6e68924e7030137cca590f}{
\index{MainApp@{MainApp}!on\_\-cmd\_\-singleStep\_\-clicked@{on\_\-cmd\_\-singleStep\_\-clicked}}
\index{on\_\-cmd\_\-singleStep\_\-clicked@{on\_\-cmd\_\-singleStep\_\-clicked}!MainApp@{MainApp}}
\subsubsection[{on\_\-cmd\_\-singleStep\_\-clicked}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::on\_\-cmd\_\-singleStep\_\-clicked (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, slot\mbox{]}}}}
\label{class_main_app_a44b46c785e6e68924e7030137cca590f}


single step through cloth simulation 



Definition at line 575 of file MainApp.cpp.



References SimulationManager::getCloth(), SimulationManager::getObstacleManager(), m\_\-simulationManager, and Cloth::updateParticles().


\begin{DoxyCode}
{
    //single step sim
    m_simulationManager->getCloth()->updateParticles(m_simulationManager->
      getObstacleManager());

    //refresh view
    m_simulationManager->updateGL();
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_a44b46c785e6e68924e7030137cca590f_cgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_a84ed30f21d4260710b49a61380a5ed25}{
\index{MainApp@{MainApp}!on\_\-group\_\-cube\_\-clicked@{on\_\-group\_\-cube\_\-clicked}}
\index{on\_\-group\_\-cube\_\-clicked@{on\_\-group\_\-cube\_\-clicked}!MainApp@{MainApp}}
\subsubsection[{on\_\-group\_\-cube\_\-clicked}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::on\_\-group\_\-cube\_\-clicked (
\begin{DoxyParamCaption}
\item[{const bool}]{\_\-checked}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, slot\mbox{]}}}}
\label{class_main_app_a84ed30f21d4260710b49a61380a5ed25}


toggle cube obstacle 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em \_\-checked} & toggle value \\
\hline
\end{DoxyParams}


Definition at line 293 of file MainApp.cpp.



References SimulationManager::getObstacleManager(), m\_\-simulationManager, and ObstacleManager::setCubeEnabled().


\begin{DoxyCode}
{
    //update obstacle manager cube toggle
    m_simulationManager->getObstacleManager()->setCubeEnabled(_checked);

    //refresh view
    m_simulationManager->updateGL();
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_a84ed30f21d4260710b49a61380a5ed25_cgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_a7806090c68e22d6ba430a13d7fca4bb7}{
\index{MainApp@{MainApp}!on\_\-group\_\-obstacle\_\-clicked@{on\_\-group\_\-obstacle\_\-clicked}}
\index{on\_\-group\_\-obstacle\_\-clicked@{on\_\-group\_\-obstacle\_\-clicked}!MainApp@{MainApp}}
\subsubsection[{on\_\-group\_\-obstacle\_\-clicked}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::on\_\-group\_\-obstacle\_\-clicked (
\begin{DoxyParamCaption}
\item[{const bool}]{\_\-checked}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, slot\mbox{]}}}}
\label{class_main_app_a7806090c68e22d6ba430a13d7fca4bb7}


toggle obstacle 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em \_\-checked} & toggle value \\
\hline
\end{DoxyParams}


Definition at line 284 of file MainApp.cpp.



References SimulationManager::getObstacleManager(), m\_\-simulationManager, and ObstacleManager::setObstacleEnabled().


\begin{DoxyCode}
{
    //update obstacle manager toggle
    m_simulationManager->getObstacleManager()->setObstacleEnabled(_checked);

    //refresh view
    m_simulationManager->updateGL();
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_a7806090c68e22d6ba430a13d7fca4bb7_cgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_ab2f8b2b66488018d5f146b87ad704f47}{
\index{MainApp@{MainApp}!on\_\-group\_\-sphere\_\-clicked@{on\_\-group\_\-sphere\_\-clicked}}
\index{on\_\-group\_\-sphere\_\-clicked@{on\_\-group\_\-sphere\_\-clicked}!MainApp@{MainApp}}
\subsubsection[{on\_\-group\_\-sphere\_\-clicked}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::on\_\-group\_\-sphere\_\-clicked (
\begin{DoxyParamCaption}
\item[{const bool}]{\_\-checked}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, slot\mbox{]}}}}
\label{class_main_app_ab2f8b2b66488018d5f146b87ad704f47}


toggle sphere obstacle 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em \_\-checked} & toggle value \\
\hline
\end{DoxyParams}


Definition at line 302 of file MainApp.cpp.



References SimulationManager::getObstacleManager(), m\_\-simulationManager, and ObstacleManager::setSphereEnabled().


\begin{DoxyCode}
{
    //update obstacle manager sphere toggle
    m_simulationManager->getObstacleManager()->setSphereEnabled(_checked);

    //refresh view
    m_simulationManager->updateGL();
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_ab2f8b2b66488018d5f146b87ad704f47_cgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_a65635027797f6308293f45c930e1dd68}{
\index{MainApp@{MainApp}!on\_\-group\_\-trace\_\-clicked@{on\_\-group\_\-trace\_\-clicked}}
\index{on\_\-group\_\-trace\_\-clicked@{on\_\-group\_\-trace\_\-clicked}!MainApp@{MainApp}}
\subsubsection[{on\_\-group\_\-trace\_\-clicked}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::on\_\-group\_\-trace\_\-clicked (
\begin{DoxyParamCaption}
\item[{const bool}]{\_\-checked}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, slot\mbox{]}}}}
\label{class_main_app_a65635027797f6308293f45c930e1dd68}


toggle internal trace 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em \_\-checked} & toggle value \\
\hline
\end{DoxyParams}


Definition at line 410 of file MainApp.cpp.



References SimulationManager::getCloth(), m\_\-simulationManager, and Cloth::setEnableInternalTrace().


\begin{DoxyCode}
{
    //toggle enable trace on particle
    m_simulationManager->getCloth()->setEnableInternalTrace(_checked);

    //refresh view
    m_simulationManager->updateGL();
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_a65635027797f6308293f45c930e1dd68_cgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_a3b05658f7aa637fbf860bdc5a82c1352}{
\index{MainApp@{MainApp}!on\_\-group\_\-wind\_\-clicked@{on\_\-group\_\-wind\_\-clicked}}
\index{on\_\-group\_\-wind\_\-clicked@{on\_\-group\_\-wind\_\-clicked}!MainApp@{MainApp}}
\subsubsection[{on\_\-group\_\-wind\_\-clicked}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::on\_\-group\_\-wind\_\-clicked (
\begin{DoxyParamCaption}
\item[{const bool}]{\_\-checked}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, slot\mbox{]}}}}
\label{class_main_app_a3b05658f7aa637fbf860bdc5a82c1352}


toggle wind 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em \_\-checked} & toggle value \\
\hline
\end{DoxyParams}


Definition at line 236 of file MainApp.cpp.



References SimulationManager::getCloth(), m\_\-simulationManager, and Cloth::setEnableWind().


\begin{DoxyCode}
{
    //update wind toggle of sim
    m_simulationManager->getCloth()->setEnableWind(_checked);
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_a3b05658f7aa637fbf860bdc5a82c1352_cgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_abfe499d0dad41ac0946134654a153088}{
\index{MainApp@{MainApp}!on\_\-sld\_\-cloth\_\-dampiness\_\-valueChanged@{on\_\-sld\_\-cloth\_\-dampiness\_\-valueChanged}}
\index{on\_\-sld\_\-cloth\_\-dampiness\_\-valueChanged@{on\_\-sld\_\-cloth\_\-dampiness\_\-valueChanged}!MainApp@{MainApp}}
\subsubsection[{on\_\-sld\_\-cloth\_\-dampiness\_\-valueChanged}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::on\_\-sld\_\-cloth\_\-dampiness\_\-valueChanged (
\begin{DoxyParamCaption}
\item[{const int}]{\_\-value}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, slot\mbox{]}}}}
\label{class_main_app_abfe499d0dad41ac0946134654a153088}


change damping coefficient 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em \_\-value} & new damping \\
\hline
\end{DoxyParams}


Definition at line 224 of file MainApp.cpp.



References fromSliderValue(), SimulationManager::getCloth(), m\_\-simulationManager, and Cloth::setDamping().


\begin{DoxyCode}
{
    //update damping of sim
    m_simulationManager->getCloth()->setDamping(fromSliderValue(0.01, 1, _value))
      ;
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_abfe499d0dad41ac0946134654a153088_cgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_a36bffbfcdee4058df0d8a150b7f7583b}{
\index{MainApp@{MainApp}!on\_\-sld\_\-cloth\_\-stiffness\_\-valueChanged@{on\_\-sld\_\-cloth\_\-stiffness\_\-valueChanged}}
\index{on\_\-sld\_\-cloth\_\-stiffness\_\-valueChanged@{on\_\-sld\_\-cloth\_\-stiffness\_\-valueChanged}!MainApp@{MainApp}}
\subsubsection[{on\_\-sld\_\-cloth\_\-stiffness\_\-valueChanged}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::on\_\-sld\_\-cloth\_\-stiffness\_\-valueChanged (
\begin{DoxyParamCaption}
\item[{const int}]{\_\-value}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, slot\mbox{]}}}}
\label{class_main_app_a36bffbfcdee4058df0d8a150b7f7583b}


change stiffness 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em \_\-value} & new stiffness \\
\hline
\end{DoxyParams}


Definition at line 218 of file MainApp.cpp.



References fromSliderValue(), SimulationManager::getCloth(), m\_\-simulationManager, and Cloth::setStiffness().


\begin{DoxyCode}
{
    //update stiffness of sim
    m_simulationManager->getCloth()->setStiffness(fromSliderValue(1, 1, _value));
      
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_a36bffbfcdee4058df0d8a150b7f7583b_cgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_a5184c6b61dd1bd87225cde87ac1cb2f0}{
\index{MainApp@{MainApp}!on\_\-sld\_\-wind\_\-strength\_\-valueChanged@{on\_\-sld\_\-wind\_\-strength\_\-valueChanged}}
\index{on\_\-sld\_\-wind\_\-strength\_\-valueChanged@{on\_\-sld\_\-wind\_\-strength\_\-valueChanged}!MainApp@{MainApp}}
\subsubsection[{on\_\-sld\_\-wind\_\-strength\_\-valueChanged}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::on\_\-sld\_\-wind\_\-strength\_\-valueChanged (
\begin{DoxyParamCaption}
\item[{const int}]{\_\-value}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, slot\mbox{]}}}}
\label{class_main_app_a5184c6b61dd1bd87225cde87ac1cb2f0}


change wind strength 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em \_\-value} & new strength \\
\hline
\end{DoxyParams}


Definition at line 260 of file MainApp.cpp.



References fromSliderValue(), SimulationManager::getCloth(), m\_\-simulationManager, and Cloth::setWindStrength().


\begin{DoxyCode}
{
    //update wind strenth of sim
    m_simulationManager->getCloth()->setWindStrength(fromSliderValue(0.005, 5, _v
      alue));
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_a5184c6b61dd1bd87225cde87ac1cb2f0_cgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_a19435af4457104eb75289ffc4baeb348}{
\index{MainApp@{MainApp}!on\_\-spin\_\-cube\_\-position\_\-x\_\-valueChanged@{on\_\-spin\_\-cube\_\-position\_\-x\_\-valueChanged}}
\index{on\_\-spin\_\-cube\_\-position\_\-x\_\-valueChanged@{on\_\-spin\_\-cube\_\-position\_\-x\_\-valueChanged}!MainApp@{MainApp}}
\subsubsection[{on\_\-spin\_\-cube\_\-position\_\-x\_\-valueChanged}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::on\_\-spin\_\-cube\_\-position\_\-x\_\-valueChanged (
\begin{DoxyParamCaption}
\item[{const int}]{\_\-value}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, slot\mbox{]}}}}
\label{class_main_app_a19435af4457104eb75289ffc4baeb348}


change x position for cube obstacle 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em \_\-value} & new x position \\
\hline
\end{DoxyParams}


Definition at line 383 of file MainApp.cpp.



References ObstacleManager::getCubePosition(), SimulationManager::getObstacleManager(), m\_\-simulationManager, and ObstacleManager::setCubePosition().


\begin{DoxyCode}
{
    //update cube pos x of obs manager
    m_simulationManager->getObstacleManager()->setCubePosition(ngl::Vector(_value
      , m_simulationManager->getObstacleManager()->getCubePosition().m_y, 
      m_simulationManager->getObstacleManager()->getCubePosition().m_z));

    //refresh view
    m_simulationManager->updateGL();
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_a19435af4457104eb75289ffc4baeb348_cgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_a07264be3f7756ccd87958f2ce64d1a83}{
\index{MainApp@{MainApp}!on\_\-spin\_\-cube\_\-position\_\-y\_\-valueChanged@{on\_\-spin\_\-cube\_\-position\_\-y\_\-valueChanged}}
\index{on\_\-spin\_\-cube\_\-position\_\-y\_\-valueChanged@{on\_\-spin\_\-cube\_\-position\_\-y\_\-valueChanged}!MainApp@{MainApp}}
\subsubsection[{on\_\-spin\_\-cube\_\-position\_\-y\_\-valueChanged}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::on\_\-spin\_\-cube\_\-position\_\-y\_\-valueChanged (
\begin{DoxyParamCaption}
\item[{const int}]{\_\-value}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, slot\mbox{]}}}}
\label{class_main_app_a07264be3f7756ccd87958f2ce64d1a83}


change y position for cube obstacle 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em \_\-value} & new y position \\
\hline
\end{DoxyParams}


Definition at line 392 of file MainApp.cpp.



References ObstacleManager::getCubePosition(), SimulationManager::getObstacleManager(), m\_\-simulationManager, and ObstacleManager::setCubePosition().


\begin{DoxyCode}
{
    //update cube pos y of obs manager
    m_simulationManager->getObstacleManager()->setCubePosition(ngl::Vector(
      m_simulationManager->getObstacleManager()->getCubePosition().m_x, _value, 
      m_simulationManager->getObstacleManager()->getCubePosition().m_z));

    //refresh view
    m_simulationManager->updateGL();
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_a07264be3f7756ccd87958f2ce64d1a83_cgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_a639f314ea437b8e8d75a2538175d70cc}{
\index{MainApp@{MainApp}!on\_\-spin\_\-cube\_\-position\_\-z\_\-valueChanged@{on\_\-spin\_\-cube\_\-position\_\-z\_\-valueChanged}}
\index{on\_\-spin\_\-cube\_\-position\_\-z\_\-valueChanged@{on\_\-spin\_\-cube\_\-position\_\-z\_\-valueChanged}!MainApp@{MainApp}}
\subsubsection[{on\_\-spin\_\-cube\_\-position\_\-z\_\-valueChanged}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::on\_\-spin\_\-cube\_\-position\_\-z\_\-valueChanged (
\begin{DoxyParamCaption}
\item[{const int}]{\_\-value}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, slot\mbox{]}}}}
\label{class_main_app_a639f314ea437b8e8d75a2538175d70cc}


change z position for cube obstacle 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em \_\-value} & new z position \\
\hline
\end{DoxyParams}


Definition at line 401 of file MainApp.cpp.



References ObstacleManager::getCubePosition(), SimulationManager::getObstacleManager(), m\_\-simulationManager, and ObstacleManager::setCubePosition().


\begin{DoxyCode}
{
    //update cube pos z of obs manager
    m_simulationManager->getObstacleManager()->setCubePosition(ngl::Vector(
      m_simulationManager->getObstacleManager()->getCubePosition().m_x, 
      m_simulationManager->getObstacleManager()->getCubePosition().m_y, _value));

    //refresh view
    m_simulationManager->updateGL();
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_a639f314ea437b8e8d75a2538175d70cc_cgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_a84577b3c22f07e177dc27b8b03312528}{
\index{MainApp@{MainApp}!on\_\-spin\_\-cube\_\-size\_\-x\_\-valueChanged@{on\_\-spin\_\-cube\_\-size\_\-x\_\-valueChanged}}
\index{on\_\-spin\_\-cube\_\-size\_\-x\_\-valueChanged@{on\_\-spin\_\-cube\_\-size\_\-x\_\-valueChanged}!MainApp@{MainApp}}
\subsubsection[{on\_\-spin\_\-cube\_\-size\_\-x\_\-valueChanged}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::on\_\-spin\_\-cube\_\-size\_\-x\_\-valueChanged (
\begin{DoxyParamCaption}
\item[{const int}]{\_\-value}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, slot\mbox{]}}}}
\label{class_main_app_a84577b3c22f07e177dc27b8b03312528}


change x size for cube obstacle 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em \_\-value} & new x size \\
\hline
\end{DoxyParams}


Definition at line 356 of file MainApp.cpp.



References ObstacleManager::getCubeDimension(), SimulationManager::getObstacleManager(), m\_\-simulationManager, and ObstacleManager::setCubeDimension().


\begin{DoxyCode}
{
    //update cube size x of obs manager
    m_simulationManager->getObstacleManager()->setCubeDimension(ngl::Vector(_valu
      e, m_simulationManager->getObstacleManager()->getCubeDimension().m_y, 
      m_simulationManager->getObstacleManager()->getCubeDimension().m_z));

    //refresh view
    m_simulationManager->updateGL();
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_a84577b3c22f07e177dc27b8b03312528_cgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_a592887690e577ff5fc9054385d7c5ec7}{
\index{MainApp@{MainApp}!on\_\-spin\_\-cube\_\-size\_\-y\_\-valueChanged@{on\_\-spin\_\-cube\_\-size\_\-y\_\-valueChanged}}
\index{on\_\-spin\_\-cube\_\-size\_\-y\_\-valueChanged@{on\_\-spin\_\-cube\_\-size\_\-y\_\-valueChanged}!MainApp@{MainApp}}
\subsubsection[{on\_\-spin\_\-cube\_\-size\_\-y\_\-valueChanged}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::on\_\-spin\_\-cube\_\-size\_\-y\_\-valueChanged (
\begin{DoxyParamCaption}
\item[{const int}]{\_\-value}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, slot\mbox{]}}}}
\label{class_main_app_a592887690e577ff5fc9054385d7c5ec7}


change y size for cube obstacle 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em \_\-value} & new y size \\
\hline
\end{DoxyParams}


Definition at line 365 of file MainApp.cpp.



References ObstacleManager::getCubeDimension(), SimulationManager::getObstacleManager(), m\_\-simulationManager, and ObstacleManager::setCubeDimension().


\begin{DoxyCode}
{
    //update cube size y of obs manager
    m_simulationManager->getObstacleManager()->setCubeDimension(ngl::Vector(
      m_simulationManager->getObstacleManager()->getCubeDimension().m_x, _value, 
      m_simulationManager->getObstacleManager()->getCubeDimension().m_z));

    //refresh view
    m_simulationManager->updateGL();
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_a592887690e577ff5fc9054385d7c5ec7_cgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_a41b60c21be62e9bef368a41a9ea1c480}{
\index{MainApp@{MainApp}!on\_\-spin\_\-cube\_\-size\_\-z\_\-valueChanged@{on\_\-spin\_\-cube\_\-size\_\-z\_\-valueChanged}}
\index{on\_\-spin\_\-cube\_\-size\_\-z\_\-valueChanged@{on\_\-spin\_\-cube\_\-size\_\-z\_\-valueChanged}!MainApp@{MainApp}}
\subsubsection[{on\_\-spin\_\-cube\_\-size\_\-z\_\-valueChanged}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::on\_\-spin\_\-cube\_\-size\_\-z\_\-valueChanged (
\begin{DoxyParamCaption}
\item[{const int}]{\_\-value}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, slot\mbox{]}}}}
\label{class_main_app_a41b60c21be62e9bef368a41a9ea1c480}


change z size for cube obstacle 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em \_\-value} & new z size \\
\hline
\end{DoxyParams}


Definition at line 374 of file MainApp.cpp.



References ObstacleManager::getCubeDimension(), SimulationManager::getObstacleManager(), m\_\-simulationManager, and ObstacleManager::setCubeDimension().


\begin{DoxyCode}
{
    //update cube size z of obs manager
    m_simulationManager->getObstacleManager()->setCubeDimension(ngl::Vector(
      m_simulationManager->getObstacleManager()->getCubeDimension().m_x, 
      m_simulationManager->getObstacleManager()->getCubeDimension().m_y, _value));

    //refresh view
    m_simulationManager->updateGL();
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_a41b60c21be62e9bef368a41a9ea1c480_cgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_af02b0266951cfd8a8e22900421d5fd50}{
\index{MainApp@{MainApp}!on\_\-spin\_\-internal\_\-particle\_\-no\_\-valueChanged@{on\_\-spin\_\-internal\_\-particle\_\-no\_\-valueChanged}}
\index{on\_\-spin\_\-internal\_\-particle\_\-no\_\-valueChanged@{on\_\-spin\_\-internal\_\-particle\_\-no\_\-valueChanged}!MainApp@{MainApp}}
\subsubsection[{on\_\-spin\_\-internal\_\-particle\_\-no\_\-valueChanged}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::on\_\-spin\_\-internal\_\-particle\_\-no\_\-valueChanged (
\begin{DoxyParamCaption}
\item[{const int}]{\_\-value}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, slot\mbox{]}}}}
\label{class_main_app_af02b0266951cfd8a8e22900421d5fd50}


change internal trace particle number 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em \_\-value} & new trace particle index \\
\hline
\end{DoxyParams}


Definition at line 419 of file MainApp.cpp.



References SimulationManager::getCloth(), Cloth::getInternalTraceParticle(), Particle::getMoveable(), m\_\-simulationManager, m\_\-ui, and Cloth::setInternalTraceParticleId().


\begin{DoxyCode}
{
    //toggle id of particle under neighbour trace
    m_simulationManager->getCloth()->setInternalTraceParticleId(_value);

    //update pin info about new particle traced
    m_ui->chk_internal_pinned->setChecked(!m_simulationManager->getCloth()->
      getInternalTraceParticle()->getMoveable());

    //refresh view
    m_simulationManager->updateGL();
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_af02b0266951cfd8a8e22900421d5fd50_cgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_a91dac23c87b10563de4d1f395a0adbef}{
\index{MainApp@{MainApp}!on\_\-spin\_\-sphere\_\-position\_\-x\_\-valueChanged@{on\_\-spin\_\-sphere\_\-position\_\-x\_\-valueChanged}}
\index{on\_\-spin\_\-sphere\_\-position\_\-x\_\-valueChanged@{on\_\-spin\_\-sphere\_\-position\_\-x\_\-valueChanged}!MainApp@{MainApp}}
\subsubsection[{on\_\-spin\_\-sphere\_\-position\_\-x\_\-valueChanged}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::on\_\-spin\_\-sphere\_\-position\_\-x\_\-valueChanged (
\begin{DoxyParamCaption}
\item[{const int}]{\_\-value}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, slot\mbox{]}}}}
\label{class_main_app_a91dac23c87b10563de4d1f395a0adbef}


change x position for sphere obstacle 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em \_\-value} & new x position \\
\hline
\end{DoxyParams}


Definition at line 329 of file MainApp.cpp.



References SimulationManager::getObstacleManager(), ObstacleManager::getSpherePosition(), m\_\-simulationManager, and ObstacleManager::setSpherePosition().


\begin{DoxyCode}
{
    //update sphere pos x of obs manager
    m_simulationManager->getObstacleManager()->setSpherePosition(ngl::Vector(_val
      ue, m_simulationManager->getObstacleManager()->getSpherePosition().m_y, 
      m_simulationManager->getObstacleManager()->getSpherePosition().m_z));

    //refresh view
    m_simulationManager->updateGL();
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_a91dac23c87b10563de4d1f395a0adbef_cgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_a390c1b49136c737d5aa77fe628987a8b}{
\index{MainApp@{MainApp}!on\_\-spin\_\-sphere\_\-position\_\-y\_\-valueChanged@{on\_\-spin\_\-sphere\_\-position\_\-y\_\-valueChanged}}
\index{on\_\-spin\_\-sphere\_\-position\_\-y\_\-valueChanged@{on\_\-spin\_\-sphere\_\-position\_\-y\_\-valueChanged}!MainApp@{MainApp}}
\subsubsection[{on\_\-spin\_\-sphere\_\-position\_\-y\_\-valueChanged}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::on\_\-spin\_\-sphere\_\-position\_\-y\_\-valueChanged (
\begin{DoxyParamCaption}
\item[{const int}]{\_\-value}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, slot\mbox{]}}}}
\label{class_main_app_a390c1b49136c737d5aa77fe628987a8b}


change y position for sphere obstacle 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em \_\-value} & new y position \\
\hline
\end{DoxyParams}


Definition at line 338 of file MainApp.cpp.



References SimulationManager::getObstacleManager(), ObstacleManager::getSpherePosition(), m\_\-simulationManager, and ObstacleManager::setSpherePosition().


\begin{DoxyCode}
{
    //update sphere pos y of obs manager
    m_simulationManager->getObstacleManager()->setSpherePosition(ngl::Vector(
      m_simulationManager->getObstacleManager()->getSpherePosition().m_x, _value, 
      m_simulationManager->getObstacleManager()->getSpherePosition().m_z));

    //refresh view
    m_simulationManager->updateGL();
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_a390c1b49136c737d5aa77fe628987a8b_cgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_a88a68612cf0b0f6e1fbbe9d201c3ccd8}{
\index{MainApp@{MainApp}!on\_\-spin\_\-sphere\_\-position\_\-z\_\-valueChanged@{on\_\-spin\_\-sphere\_\-position\_\-z\_\-valueChanged}}
\index{on\_\-spin\_\-sphere\_\-position\_\-z\_\-valueChanged@{on\_\-spin\_\-sphere\_\-position\_\-z\_\-valueChanged}!MainApp@{MainApp}}
\subsubsection[{on\_\-spin\_\-sphere\_\-position\_\-z\_\-valueChanged}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::on\_\-spin\_\-sphere\_\-position\_\-z\_\-valueChanged (
\begin{DoxyParamCaption}
\item[{const int}]{\_\-value}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, slot\mbox{]}}}}
\label{class_main_app_a88a68612cf0b0f6e1fbbe9d201c3ccd8}


change z position for sphere obstacle 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em \_\-value} & new z position \\
\hline
\end{DoxyParams}


Definition at line 347 of file MainApp.cpp.



References SimulationManager::getObstacleManager(), ObstacleManager::getSpherePosition(), m\_\-simulationManager, and ObstacleManager::setSpherePosition().


\begin{DoxyCode}
{
    //update sphere pos z of obs manager
    m_simulationManager->getObstacleManager()->setSpherePosition(ngl::Vector(
      m_simulationManager->getObstacleManager()->getSpherePosition().m_x, 
      m_simulationManager->getObstacleManager()->getSpherePosition().m_y, _value));

    //refresh view
    m_simulationManager->updateGL();
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_a88a68612cf0b0f6e1fbbe9d201c3ccd8_cgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_a4ee874a88d6dc841f25b96ffd9e87309}{
\index{MainApp@{MainApp}!on\_\-spin\_\-sphere\_\-radius\_\-valueChanged@{on\_\-spin\_\-sphere\_\-radius\_\-valueChanged}}
\index{on\_\-spin\_\-sphere\_\-radius\_\-valueChanged@{on\_\-spin\_\-sphere\_\-radius\_\-valueChanged}!MainApp@{MainApp}}
\subsubsection[{on\_\-spin\_\-sphere\_\-radius\_\-valueChanged}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::on\_\-spin\_\-sphere\_\-radius\_\-valueChanged (
\begin{DoxyParamCaption}
\item[{const int}]{\_\-value}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, slot\mbox{]}}}}
\label{class_main_app_a4ee874a88d6dc841f25b96ffd9e87309}


change sphere radius 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em \_\-value} & new radius \\
\hline
\end{DoxyParams}


Definition at line 320 of file MainApp.cpp.



References SimulationManager::getObstacleManager(), m\_\-simulationManager, and ObstacleManager::setSphereRadius().


\begin{DoxyCode}
{
    //update obs manager sphere radius -> not advisable
    m_simulationManager->getObstacleManager()->setSphereRadius(_value);

    //refresh view
    m_simulationManager->updateGL();
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_a4ee874a88d6dc841f25b96ffd9e87309_cgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_a8e5194511f0d8b1008f8b8356a8d39fe}{
\index{MainApp@{MainApp}!on\_\-spin\_\-wind\_\-direction\_\-x\_\-valueChanged@{on\_\-spin\_\-wind\_\-direction\_\-x\_\-valueChanged}}
\index{on\_\-spin\_\-wind\_\-direction\_\-x\_\-valueChanged@{on\_\-spin\_\-wind\_\-direction\_\-x\_\-valueChanged}!MainApp@{MainApp}}
\subsubsection[{on\_\-spin\_\-wind\_\-direction\_\-x\_\-valueChanged}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::on\_\-spin\_\-wind\_\-direction\_\-x\_\-valueChanged (
\begin{DoxyParamCaption}
\item[{const int}]{\_\-value}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, slot\mbox{]}}}}
\label{class_main_app_a8e5194511f0d8b1008f8b8356a8d39fe}


change wind x direction 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em \_\-value} & new x direction \\
\hline
\end{DoxyParams}


Definition at line 266 of file MainApp.cpp.



References SimulationManager::getCloth(), Cloth::getWindDirection(), m\_\-simulationManager, and Cloth::setWindDirection().


\begin{DoxyCode}
{
    //update wind direction x of sim
    m_simulationManager->getCloth()->setWindDirection(ngl::Vector(_value, 
      m_simulationManager->getCloth()->getWindDirection().m_y, m_simulationManager->
      getCloth()->getWindDirection().m_z));
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_a8e5194511f0d8b1008f8b8356a8d39fe_cgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_a8a16b441e0b3acc1c3cea7c1a049b991}{
\index{MainApp@{MainApp}!on\_\-spin\_\-wind\_\-direction\_\-y\_\-valueChanged@{on\_\-spin\_\-wind\_\-direction\_\-y\_\-valueChanged}}
\index{on\_\-spin\_\-wind\_\-direction\_\-y\_\-valueChanged@{on\_\-spin\_\-wind\_\-direction\_\-y\_\-valueChanged}!MainApp@{MainApp}}
\subsubsection[{on\_\-spin\_\-wind\_\-direction\_\-y\_\-valueChanged}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::on\_\-spin\_\-wind\_\-direction\_\-y\_\-valueChanged (
\begin{DoxyParamCaption}
\item[{const int}]{\_\-value}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, slot\mbox{]}}}}
\label{class_main_app_a8a16b441e0b3acc1c3cea7c1a049b991}


change wind y direction 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em \_\-value} & new y direction \\
\hline
\end{DoxyParams}


Definition at line 272 of file MainApp.cpp.



References SimulationManager::getCloth(), Cloth::getWindDirection(), m\_\-simulationManager, and Cloth::setWindDirection().


\begin{DoxyCode}
{
    //update wind direction y of sim
    m_simulationManager->getCloth()->setWindDirection(ngl::Vector(
      m_simulationManager->getCloth()->getWindDirection().m_x, _value, 
      m_simulationManager->getCloth()->getWindDirection().m_z));
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_a8a16b441e0b3acc1c3cea7c1a049b991_cgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_a8c4b40d6b8720742645314a3fcc15219}{
\index{MainApp@{MainApp}!on\_\-spin\_\-wind\_\-direction\_\-z\_\-valueChanged@{on\_\-spin\_\-wind\_\-direction\_\-z\_\-valueChanged}}
\index{on\_\-spin\_\-wind\_\-direction\_\-z\_\-valueChanged@{on\_\-spin\_\-wind\_\-direction\_\-z\_\-valueChanged}!MainApp@{MainApp}}
\subsubsection[{on\_\-spin\_\-wind\_\-direction\_\-z\_\-valueChanged}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::on\_\-spin\_\-wind\_\-direction\_\-z\_\-valueChanged (
\begin{DoxyParamCaption}
\item[{const int}]{\_\-value}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, slot\mbox{]}}}}
\label{class_main_app_a8c4b40d6b8720742645314a3fcc15219}


change wind z direction 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em \_\-value} & new z direction \\
\hline
\end{DoxyParams}


Definition at line 278 of file MainApp.cpp.



References SimulationManager::getCloth(), Cloth::getWindDirection(), m\_\-simulationManager, and Cloth::setWindDirection().


\begin{DoxyCode}
{
    //update wind direction z of sim
    m_simulationManager->getCloth()->setWindDirection(ngl::Vector(
      m_simulationManager->getCloth()->getWindDirection().m_x, m_simulationManager->
      getCloth()->getWindDirection().m_y, _value));
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_a8c4b40d6b8720742645314a3fcc15219_cgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_a0bd09d04e4384fbd63b64988ac35abe1}{
\index{MainApp@{MainApp}!reInitialiseSimulation@{reInitialiseSimulation}}
\index{reInitialiseSimulation@{reInitialiseSimulation}!MainApp@{MainApp}}
\subsubsection[{reInitialiseSimulation}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::reInitialiseSimulation (
\begin{DoxyParamCaption}
\item[{const {\bf ConstrainedScenario}}]{\_\-scenario}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{class_main_app_a0bd09d04e4384fbd63b64988ac35abe1}


reinitialise simulation with batch parameters 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em \_\-scenario} & the scenario to be reinitialised with \\
\hline
\end{DoxyParams}


Definition at line 156 of file MainApp.cpp.



References fromSliderValue(), SimulationManager::getCloth(), Cloth::getInternalTraceParticle(), Particle::getMoveable(), m\_\-simulationManager, m\_\-ui, and Cloth::reInitialiseParticles().


\begin{DoxyCode}
{
    //reinialise cloth particles
    float timestep = fromSliderValue(0.001, 10, m_ui->sld_sim_timestep->value());
      

    m_simulationManager->getCloth()->reInitialiseParticles
            (
                m_ui->spin_cloth_height->value(),
                m_ui->spin_cloth_width->value(),
                m_ui->spin_cloth_verticalParticleCount->value(),
                m_ui->spin_cloth_horizontalParticleCount->value(),
                timestep,
                (IntegrationType)m_ui->cmb_sim_integrationType->currentIndex(),
                _scenario
            );

    //update obstacle manager objects
//    ngl::Vector cubePos = ngl::Vector(m_ui->spin_cube_position_x->value(), m_ui
      ->spin_cube_position_y->value(), m_ui->spin_cube_position_z->value());
//    ngl::Vector cubeSize = ngl::Vector(m_ui->spin_cube_size_x->value(), m_ui->s
      pin_cube_size_y->value(), m_ui->spin_cube_size_z->value());
//    ngl::Vector spherePos = ngl::Vector(m_ui->spin_sphere_position_x->value(), 
      m_ui->spin_sphere_position_y->value(), m_ui->spin_sphere_position_z->value());
//    int sphereRadius = m_ui->spin_sphere_radius->value();

//    m_simulationManager->getObstacleManager()->setCubePosition(cubePos);
//    m_simulationManager->getObstacleManager()->setCubeDimension(cubeSize);
//    m_simulationManager->getObstacleManager()->setSpherePosition(spherePos);
//    m_simulationManager->getObstacleManager()->setSphereRadius(sphereRadius);

    //refresh pinned info for trace particle
    m_ui->chk_internal_pinned->setChecked(!m_simulationManager->getCloth()->
      getInternalTraceParticle()->getMoveable());

    //refresh view
    m_simulationManager->updateGL();
}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_a0bd09d04e4384fbd63b64988ac35abe1_cgraph}
\end{center}
\end{figure}




Here is the caller graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_a0bd09d04e4384fbd63b64988ac35abe1_icgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_a8947167d51717eb956ea8238906e0a6c}{
\index{MainApp@{MainApp}!setupConnections@{setupConnections}}
\index{setupConnections@{setupConnections}!MainApp@{MainApp}}
\subsubsection[{setupConnections}]{\setlength{\rightskip}{0pt plus 5cm}void MainApp::setupConnections (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{class_main_app_a8947167d51717eb956ea8238906e0a6c}


setup up the UI intial values and connects signals/slots 



Definition at line 34 of file MainApp.cpp.



References SimulationManager::getCloth(), ObstacleManager::getCubeDimension(), ObstacleManager::getCubeEnabled(), ObstacleManager::getCubePosition(), Cloth::getCurrentClothMaterialName(), Cloth::getDamping(), ObstacleManager::getDrawBBox(), Cloth::getDrawWireframe(), Cloth::getEnableGravity(), Cloth::getEnableHookeBend(), Cloth::getEnableHookeStretch(), Cloth::getEnableHookeStructural(), Cloth::getEnableInternalTrace(), Cloth::getEnableInternalTraceNeighbours(), Cloth::getEnableWind(), Cloth::getHeight(), Cloth::getHorizontalParticleCount(), Cloth::getIntegrationType(), Cloth::getInternalTraceParticle(), Cloth::getInternalTraceParticleId(), Particle::getMoveable(), ObstacleManager::getObstacleEnabled(), SimulationManager::getObstacleManager(), ObstacleManager::getSphereEnabled(), ObstacleManager::getSpherePosition(), ObstacleManager::getSphereRadius(), Cloth::getStiffness(), Cloth::getTimestep(), Cloth::getVerticalParticleCount(), Cloth::getWidth(), Cloth::getWindDirection(), Cloth::getWindStrength(), Configuration::initialiseCamera(), m\_\-simulationManager, m\_\-ui, and toSliderValue().


\begin{DoxyCode}
{
    //read values from simulation managers and set up control initial values here
      
    Cloth* cloth = m_simulationManager->getCloth();
    ObstacleManager* obstacleManager = m_simulationManager->getObstacleManager();
      

    //--------------------------------------TAB : CLOTH
    //set dimensions
    m_ui->spin_cloth_height->setValue(cloth->getHeight());
    m_ui->spin_cloth_width->setValue(cloth->getWidth());
    m_ui->spin_cloth_verticalParticleCount->setValue(cloth->
      getVerticalParticleCount());
    m_ui->spin_cloth_horizontalParticleCount->setValue(cloth->
      getHorizontalParticleCount());

    //set material
    int index = m_ui->cmb_cloth_material->findText(QString(cloth->
      getCurrentClothMaterialName().c_str()));
    m_ui->cmb_cloth_material->setCurrentIndex(index);

    m_ui->sld_cloth_stiffness->setValue(toSliderValue(1, 1, cloth->getStiffness()
      ));
    m_ui->sld_cloth_dampiness->setValue(toSliderValue(0.01, 1, cloth->getDamping(
      )));

    //select drawing mode of cloth
    m_ui->chk_cloth_wireframe->setChecked(cloth->getDrawWireframe());

    //--------------------------------------TAB : SIM
    //select default integration type
    m_ui->cmb_sim_integrationType->setCurrentIndex((int)cloth->
      getIntegrationType());

    //set timestep
    m_ui->sld_sim_timestep->setValue(toSliderValue(0.001, 10, cloth->getTimestep(
      )));

    //--------------------------------------TAB : FORCE
    m_ui->chk_force_gravity->setChecked(cloth->getEnableGravity());
    m_ui->group_wind->setChecked(cloth->getEnableWind());
    m_ui->chk_spring_structural->setChecked(cloth->getEnableHookeStructural());
    m_ui->chk_spring_stretch->setChecked(cloth->getEnableHookeStretch());
    m_ui->chk_spring_bend->setChecked(cloth->getEnableHookeBend());

    m_ui->sld_wind_strength->setValue(toSliderValue(0.005, 5, cloth->
      getWindStrength()));
    m_ui->spin_wind_direction_x->setValue(cloth->getWindDirection().m_x);
    m_ui->spin_wind_direction_y->setValue(cloth->getWindDirection().m_y);
    m_ui->spin_wind_direction_z->setValue(cloth->getWindDirection().m_z);

    //--------------------------------------TAB : OBSTACLE
    m_ui->group_obstacle->setChecked(obstacleManager->getObstacleEnabled());
    m_ui->group_cube->setChecked(obstacleManager->getCubeEnabled());
    m_ui->chk_cube_bbox->setChecked(obstacleManager->getDrawBBox());
    m_ui->group_sphere->setChecked(obstacleManager->getSphereEnabled());

    m_ui->spin_cube_position_x->setValue(obstacleManager->getCubePosition().m_x);
      
    m_ui->spin_cube_position_y->setValue(obstacleManager->getCubePosition().m_y);
      
    m_ui->spin_cube_position_z->setValue(obstacleManager->getCubePosition().m_z);
      

    m_ui->spin_cube_size_x->setValue(obstacleManager->getCubeDimension().m_x);
    m_ui->spin_cube_size_y->setValue(obstacleManager->getCubeDimension().m_y);
    m_ui->spin_cube_size_z->setValue(obstacleManager->getCubeDimension().m_z);

    m_ui->spin_sphere_position_x->setValue(obstacleManager->getSpherePosition().m
      _x);
    m_ui->spin_sphere_position_y->setValue(obstacleManager->getSpherePosition().m
      _y);
    m_ui->spin_sphere_position_z->setValue(obstacleManager->getSpherePosition().m
      _z);

    m_ui->spin_sphere_radius->setValue(obstacleManager->getSphereRadius());

    //--------------------------------------TAB : INTERNAL
    //toggle trace particles & set value and max value
    m_ui->group_trace->setChecked(cloth->getEnableInternalTrace());
    m_ui->spin_internal_particle_no->setValue(cloth->getInternalTraceParticleId()
      );
    m_ui->spin_internal_particle_no->setMaximum((cloth->
      getHorizontalParticleCount() * cloth->getVerticalParticleCount()) - 1);

    m_ui->chk_internal_traceNeighbours->setChecked(cloth->
      getEnableInternalTraceNeighbours());

    m_ui->chk_internal_pinned->setChecked(!cloth->getInternalTraceParticle()->
      getMoveable());

    //--------------------------------------GLOBAL CAMERA
    //setup camera zoom control and signal here
    //read camera z value from config file and set it to the slider
    ngl::Camera m_camera = Configuration::initialiseCamera(1.0);
    m_ui->sld_cameraZoom->setValue(-m_camera.getEye().m_z);
    connect(m_ui->sld_cameraZoom, SIGNAL(valueChanged(int)), m_simulationManager,
       SLOT(updateCameraZoom(int)));

}
\end{DoxyCode}


Here is the call graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=600pt]{class_main_app_a8947167d51717eb956ea8238906e0a6c_cgraph}
\end{center}
\end{figure}


\hypertarget{class_main_app_a79a7df574069d704c60bc040ea9f8b75}{
\index{MainApp@{MainApp}!toSliderValue@{toSliderValue}}
\index{toSliderValue@{toSliderValue}!MainApp@{MainApp}}
\subsubsection[{toSliderValue}]{\setlength{\rightskip}{0pt plus 5cm}int MainApp::toSliderValue (
\begin{DoxyParamCaption}
\item[{const float}]{\_\-lowerTrue, }
\item[{const int}]{\_\-lowerSlider, }
\item[{const float}]{\_\-lowerX}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{class_main_app_a79a7df574069d704c60bc040ea9f8b75}


convert a value from the simulation to that on the slider, given the range 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em \_\-lowerTrue} & the lower value from the simulation \\
\hline
\mbox{\tt in}  & {\em \_\-lowerSlider} & the lower value of the slider \\
\hline
\mbox{\tt in}  & {\em \_\-lowerX} & the value from the simulation to convert \\
\hline
\end{DoxyParams}


Definition at line 136 of file MainApp.cpp.


\begin{DoxyCode}
{
    float ratio = (float)_lowerSlider / _lowerTrue;
    return (int)(_lowerX * ratio);
}
\end{DoxyCode}


Here is the caller graph for this function:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_main_app_a79a7df574069d704c60bc040ea9f8b75_icgraph}
\end{center}
\end{figure}




\subsection{Member Data Documentation}
\hypertarget{class_main_app_a29691ed147f9a0a066038fc0801ee53b}{
\index{MainApp@{MainApp}!m\_\-simulationManager@{m\_\-simulationManager}}
\index{m\_\-simulationManager@{m\_\-simulationManager}!MainApp@{MainApp}}
\subsubsection[{m\_\-simulationManager}]{\setlength{\rightskip}{0pt plus 5cm}{\bf SimulationManager}$\ast$ {\bf MainApp::m\_\-simulationManager}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{class_main_app_a29691ed147f9a0a066038fc0801ee53b}


the main gl context that is used for drawing and creation of the cloth simulation 



Definition at line 43 of file MainApp.h.

\hypertarget{class_main_app_a4293f05676b5fdec0609673637bc63a2}{
\index{MainApp@{MainApp}!m\_\-ui@{m\_\-ui}}
\index{m\_\-ui@{m\_\-ui}!MainApp@{MainApp}}
\subsubsection[{m\_\-ui}]{\setlength{\rightskip}{0pt plus 5cm}Ui::MainWindow$\ast$ {\bf MainApp::m\_\-ui}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{class_main_app_a4293f05676b5fdec0609673637bc63a2}


the handle to the main GUI window, used for creating all the UI and the gl window 



Definition at line 40 of file MainApp.h.



The documentation for this class was generated from the following files:\begin{DoxyCompactItemize}
\item 
include/\hyperlink{_main_app_8h}{MainApp.h}\item 
src/\hyperlink{_main_app_8cpp}{MainApp.cpp}\end{DoxyCompactItemize}
